(function ($) {
    $.fn.amap = function (options) {
        var settings = {
            lngX: 118.773193,
            latY: 32.03602
        };

        if (options) {
            $.extend(settings, options);
        }

        var mapObj, marker;
        var lngX = $("#lngX").val() || settings.lngX;
        var latY = $("#latY").val() || settings.latY;
        //初始化地图对象，加载地图
        var mapInit = function () {
            mapObj = new AMap.Map("map", {
                center: new AMap.LngLat(lngX, latY), //地图中心点
                level: 13  //地图显示的缩放级别
            });

            !$("#lngX").val() || addMarker();
            //为地图注册click事件获取鼠标点击出的经纬度坐标
            var clickEventListener = AMap.event.addListener(mapObj, 'click', function (e) {
                lngX = e.lnglat.getLng();
                latY = e.lnglat.getLat();
                $("#lngX").val(lngX);
                $("#latY").val(latY);
                var geocoder = new AMap.Geocoder();
                geocoder.regeocode(new AMap.LngLat(lngX, latY),
                    function (data) {
                        res = data["list"][0]['province']['name'] +//省名
                            data["list"][0]['city']['name'] +//城市名
                            data["list"][0]['district']['name'] +//区名
                            data["list"][0]['poilist'][0]['address'] +//地址
                            data["list"][0]['poilist'][0]['name'];//地名
                        $("input[name='address']").val(res);
                    });
                if (marker) {
                    marker.setMap(null);
                }
                addMarker();
            });
        }

        //实例化点标记
        function addMarker() {
            marker = new AMap.Marker({
                icon: "http://webapi.amap.com/images/marker_sprite.png",
                position: new AMap.LngLat(lngX, latY)
            });
            marker.setMap(mapObj);  //在地图上添加点
        }

        mapInit();
    };
}(jQuery));